package com.ibm.sova.abcd.cma.dto;

import java.util.*;

/**
 * This is the entity class for product.
 * 
 * Thread Safety: it is mutable and not thread safe
 */
public class Product {
    /**
     * Represents id of the product.
     * 
     * It is initialized in ctor to null, can be any value, has getter and setter.
     */
    private String id;

    /**
     * Represents quantity of the product.
     * 
     * It is initialized in ctor to null, can be any value, has getter and setter.
     */
    private int quantity;

    /**
     * Represents type of the product.
     * 
     * It is initialized in ctor to null, can be any value, has getter and setter.
     */
    private String type;

    /**
     * @return the id
     */
    public String getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * @return the quantity
     */
    public int getQuantity() {
        return quantity;
    }

    /**
     * @param quantity the quantity to set
     */
    public void setQuantity(int quantity) {
        this.quantity = quantity;
    }

    /**
     * @return the type
     */
    public String getType() {
        return type;
    }

    /**
     * @param type the type to set
     */
    public void setType(String type) {
        this.type = type;
    }

    /**
     * @return the description
     */
    public String getDescription() {
        return description;
    }

    /**
     * @param description the description to set
     */
    public void setDescription(String description) {
        this.description = description;
    }

    /**
     * @return the lastOrderDate
     */
    public Date getLastOrderDate() {
        return lastOrderDate;
    }

    /**
     * @param lastOrderDate the lastOrderDate to set
     */
    public void setLastOrderDate(Date lastOrderDate) {
        this.lastOrderDate = lastOrderDate;
    }

    /**
     * @return the status
     */
    public Status getStatus() {
        return status;
    }

    /**
     * @param status the status to set
     */
    public void setStatus(Status status) {
        this.status = status;
    }

    /**
     * @return the features
     */
    public List getFeatures() {
        return features;
    }

    /**
     * @param features the features to set
     */
    public void setFeatures(List features) {
        this.features = features;
    }

    /**
     * Represents description of the product.
     * 
     * It is initialized in ctor to null, can be any value, has getter and setter.
     */
    private String description;

    /**
     * Represents last order date of the product.
     * 
     * It is initialized in ctor to null, can be any value, has getter and setter.
     */
    private Date lastOrderDate;

    /**
     * Represents status of the product.
     * 
     * It is initialized in ctor to null, can be any value, has getter and setter.
     */
    private Status status;

    /**
     * Represents features list of the product.
     * 
     * It is initialized in ctor to null, can be any value, its elements can be any value, has getter and setter.
     */
    private List features;

    /**
     * CreateCreates an instance of this class.
     * 
     * ###Params
     * None
     * 
     * ###Impl
     * Does nothing
     * 
     * ###Exceptions
     * None
     */
    public Product() {
    }
}

